package cn.enjoy.tool.utils.select;

/**
 * @author K
 * @date 2020/12/16 14:56
 */
public class TypeConverts<P, T> {

    public static <P, T> Selector<P, T> use(P param) {
        return new Selector<>(param);
    }

    /**
     * 构建分支，临时创建branch
     * 这里的s就是use(P param)中的param，是String类型
     *
     * @param value 被包含的值
     * @return 返回分支构建器
     */
    public BranchBuilder<String, T> contains(CharSequence value) {
        return BranchBuilder.of(s -> s.contains(value));
    }

    /**
     * @see #contains(CharSequence)
     */
    public BranchBuilder<String, T> containsAny(CharSequence... values) {
        return BranchBuilder.of(s -> {
            for (CharSequence value : values) {
                if (s.contains(value)) {
                    return true;
                }
            }
            return false;
        });
    }

}
